package com.cy.pj.sys.dao;

import com.cy.pj.sys.pojo.SysNotice;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;
/**
 * 创建公告模块数据持久层对象，借助此类型的对象基于MyBatis技术实现与数据库的交互，
 * 通过这些交互来访问或操作公告模块的数据。
 * 建议：在springboot工程中基于mybatis实现与数据库交互时，一般首先要定义一个数据层
 * 接口(例如SysNoticeDao)，然后通过@Mapper注解对接口进行描述。当系统启动时，会对启动类
 * 所在包以及子包中的类进行扫描，假如发现接口上有@Mapper注解(mybatis提供)，系统底层会基于、
 * 接口创建其实现类(借助反射包中Proxy类进行创建)，在实现类的内部，底层会又基于sqlsession
 * 对象实现数据访问和操作。
 */


@Mapper
public interface SysNoticeDao {
    /**
     * 基于条件查询公告信息
     * @param notice
     * @return
     */
    List<SysNotice> selectNotice(SysNotice notice);

    /**
     * 基于id删除公告信息
     * @param id
     * @return 删除几行
     */
    int deleteById(Long... id);//可变参数只能应用与方法参数的最后一个参数
    @Select("select * from sys_notices where id=#{id}")
    SysNotice selectById(Long id);

    int insertNotice(SysNotice notice);

    int updateNotice(SysNotice notice);
}
